
package impresion;


import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import gestion.Presupuesto;
import gestion.PresupuestoProducto;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.Query;
import productos.Producto;

public class ImprimirPresupuesto extends Imprimir {
    private javax.persistence.EntityManager lpdPUEntityManager;
    private Document documento1;
    private Query q,q1,q2,q3,q4;
    private Boolean a;
    private float total1,total2,total3;
    private String tit;
    private Presupuesto presupuesto;

    public ImprimirPresupuesto() {
        lpdPUEntityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("lpdPU").createEntityManager();
    }

    public void setPresupuesto(Presupuesto presupuesto) throws DocumentException, IOException{
        this.presupuesto=presupuesto;
    }

    @Override
    protected String getTit() {
        tit="presupuesto".concat("_").concat(String.valueOf(presupuesto.getIDpresupuesto())).concat("_").concat(presupuesto.getFecha()).concat(".pdf");
        return tit;
    }

    @Override
    protected void setDescripcion() throws DocumentException, Exception {
        a= documento.add(new Paragraph("\n Nombre del cliente: "+presupuesto.getNombre()+"      NIF: "+presupuesto.getNif()+"        Telefono: "+presupuesto.getTlf()));
        q2=lpdPUEntityManager.createQuery("SELECT p FROM Producto p , PresupuestoProducto pp WHERE p.iDproducto=pp.presupuestoProductoPK.iDproducto AND pp.presupuestoProductoPK.iDpresupuesto="+presupuesto.getIDpresupuesto());
        List productos=q2.getResultList();
        Iterator it=productos.iterator();
        total1=0;
        while(it.hasNext()){
            Producto producto=(Producto) it.next();
            q3=lpdPUEntityManager.createQuery("SELECT pp FROM PresupuestoProducto pp WHERE pp.presupuestoProductoPK.iDproducto="+producto.getIDproducto()+" AND pp.presupuestoProductoPK.iDpresupuesto="+presupuesto.getIDpresupuesto());
            PresupuestoProducto presupuestoProducto=(PresupuestoProducto) q3.getSingleResult();
            total2=producto.getPrecio()*presupuestoProducto.getCantidad();
            a=documento.add(new Paragraph("\n Número producto: "+producto.getIDproducto()+"    Concepto: "+producto.getConcepto()+ "       Cantidad: "+presupuestoProducto.getCantidad()+"    Precio/Unidad: "+producto.getPrecio()+"       Total:"+total2));
            total1=total1+total2;
        }
        a=documento.add(new Paragraph("\n\n\n                                          TOTAL: "+total1));
        total3=total1-(total1*presupuesto.getDescuento())+(total1*presupuesto.getIrpf());
        a=documento.add(new Paragraph("\n                                                     Descuento:"+presupuesto.getDescuento()+"\n                                                          IRPF: "+presupuesto.getIrpf()+"\n\n                                         -------------------------------\n                                               TOTAL: "+total3));
  try{
        Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + tit);
    } catch (IOException ex) {
    Logger.getLogger(ImprimirFactura.class.getName()).log(Level.SEVERE, null, ex);
    }
    }

    @Override
    protected void copiar() {

    }
}
